Skip to content

feat: add French translation#500

Merged
grunch merged 2 commits intomainfrom
feat/french-translation
Feb 25, 2026
Merged

feat: add French translation#500
grunch merged 2 commits intomainfrom
feat/french-translation

Conversation

@mostronatorcoder
Copy link
Contributor

@mostronatorcoder mostronatorcoder bot commented Feb 25, 2026

Summary

This PR adds complete French translation support to the Mostro Mobile app.

Changes

  • Added lib/l10n/intl_fr.arb with French translations for all 868 user-facing strings
  • Updated lib/shared/widgets/language_selector.dart to include French option in language selector
  • Preserved all technical terms (Lightning, Nostr, Bitcoin, sats, Mostro, NWC, LND, NIP-59, hold invoice)
  • Preserved all placeholder variables ({amount}, {id}, {expiration_seconds}, etc.)
  • Used formal French ("vous" form) for user-facing text
  • Added "french": "Français" entry for the language selector

Validation

  • ✅ JSON structure is valid
  • ✅ All metadata entries (@key) preserved exactly as-is
  • ✅ All placeholders preserved exactly as-is
  • ✅ Technical terms not translated
  • ✅ Proper nouns not translated
  • ✅ Key count matches English source (868 translatable keys + 1 language name)
  • ✅ French locale registered in language selector

Testing

After this PR is merged, users will be able to:

  1. Select "Français" from the language dropdown in Settings
  2. See the entire app interface in French
  3. Use all app features with French localization

Notes

  • Follows Flutter l10n best practices
  • Compatible with existing l10n.yaml configuration
  • Uses @@Locale: "fr" as required
  • Ready for dart run build_runner build to generate localization classes

Summary by CodeRabbit

Release Notes

  • New Features
    • Added comprehensive French language support to the application. Users can now select French as their preferred language in the language selection menu. Complete French translations have been implemented for all user interface elements, including messages, notifications, and application workflows across the entire platform.

Mostronator added 2 commits February 25, 2026 12:40
The 'french' key was only present in intl_fr.arb but missing from
intl_en.arb (the template), intl_es.arb, and intl_it.arb. Since
Flutter generates the S class from the template file, the getter
S.of(context)!.french was undefined.

Added 'french' translation to all locale files:
- intl_en.arb: 'French'
- intl_es.arb: 'Francés'
- intl_it.arb: 'Francese'
- intl_fr.arb: already had 'Français'
@grunch
Copy link
Member

grunch commented Feb 25, 2026

@coderabbitai review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 25, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 25, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 149010c and 2c71103.

📒 Files selected for processing (5)
  • lib/l10n/intl_en.arb
  • lib/l10n/intl_es.arb
  • lib/l10n/intl_fr.arb
  • lib/l10n/intl_it.arb
  • lib/shared/widgets/language_selector.dart

Walkthrough

This pull request adds comprehensive French language support to the application by introducing a complete French localization file and extending language configurations across existing locale files and the language selector component.

Changes

Cohort / File(s) Summary
Locale Language Entries
lib/l10n/intl_en.arb, lib/l10n/intl_es.arb, lib/l10n/intl_it.arb
Added single-line French language label entries ("french": "French"/"Francés"/"Francese") to extend supported language lists in English, Spanish, and Italian locale files.
French Localization File
lib/l10n/intl_fr.arb
Added comprehensive French translation file with 1472 lines covering all UI strings, order flows, dispute handling, chat, notifications, wallet interactions, relay management, account settings, and dynamic string placeholders.
Language Selector Integration
lib/shared/widgets/language_selector.dart
Added French language mapping ('fr' → 'french') and localization resolver case to enable French selection and display in the language selector widget.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 A hop through the Hexagon we go,
French words now dance in the app's tableau,
From "Bonjour" prompts to "Parlez-vous" delight,
Language selector shines, oh what a sight!
Vive la localisation! 🇫🇷✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: add French translation' accurately and concisely summarizes the main change: adding French localization support to the application.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/french-translation

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Member

@grunch grunch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tACK

@grunch grunch merged commit dfab8f7 into main Feb 25, 2026
1 check passed
@grunch grunch deleted the feat/french-translation branch February 25, 2026 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant